home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 6 / coreaids.zip / TIME_GET.ASM < prev    next >
Assembly Source File  |  1987-06-25  |  2KB  |  76 lines

  1. ;    DESC:    Gets the system time                                 V1.00
  2. ;    OUT:    *{SEG_VAL} segment address and
  3. ;        *{OFFSET} offset within segment of time in ASCII printable
  4. ;         format. Time is in format HH:MM:SS.XX
  5. ;    SAMPLE:    Callm    TIME_GET,,<SEG_VAL,OFFSET>
  6. ;    ##################################################################
  7.  
  8. TIME_GED    Segment
  9. HOUR        DW    0            ;time block.
  10.         DB    ':'
  11. MINUTE        DW    0
  12.         DB    ':'
  13. SECOND        DW    0
  14.         DB    '.'
  15. HUNDRED        DW    0
  16.         DB    0
  17. TIME_GED    Ends
  18.  
  19.     Extrn    HEX_ASC:Near            ;convert hex to ASCII.
  20.     Extrn    PUSHALL:Near
  21.     Extrn    POPALL:Near
  22.  
  23. TIME_GEC    Segment
  24.     Assume    CS:TIME_GEC,DS:TIME_GED
  25.     Public    TIME_GET
  26.  
  27.     Include    CALLM.MAC
  28.                         ;notice.
  29.     DB    'TIME_GET - V1.00, Copyright 1987, CoreTechs   ',0DH,0AH
  30.  
  31. TIME_GET    Proc    Near
  32.  
  33.     Call    PUSHALL                ;save registers.
  34.  
  35.     Mov    AX,TIME_GED            ;setup workarea.
  36.     Mov    DS,AX
  37.  
  38.     Mov    AH,2CH                ;get system time.
  39.     Int    21H
  40.  
  41.     Mov    BH,0                ;break out hour.
  42.     Mov    BL,CH
  43.     Callm    HEX_ASC,<0,BX>,<AX,AX,AX,AX,AX>
  44.     Xchg    AH,AL
  45.     Mov    HOUR,AX
  46.  
  47.     Mov    CH,0                ;break out minutes.
  48.     Callm    HEX_ASC,<0,CX>,<AX,AX,AX,AX,AX>
  49.     Xchg    AH,AL
  50.     Or    AX,3030H
  51.     Mov    MINUTE,AX
  52.  
  53.     Xor    BX,BX                ;break out seconds.
  54.     Mov    BL,DH
  55.     Callm    HEX_ASC,<0,BX>,<AX,AX,AX,AX,AX>
  56.     Xchg    AH,AL
  57.     Or    AX,3030H
  58.     Mov    SECOND,AX
  59.  
  60.     Mov    DH,0                ;break out hundreds of
  61.     Callm    HEX_ASC,<0,DX>,<AX,AX,AX,AX,AX>    ;seconds.
  62.     Xchg    AH,AL
  63.     Or    AX,3030H
  64.     Mov    HUNDRED,AX
  65.  
  66.     Mov    DX,OFFSET HOUR            ;return pointer to
  67.     Push    DX                ;time block.
  68.     Push    DS
  69.  
  70.     Call    POPALL                ;restore registers.
  71.     Ret
  72.  
  73. TIME_GET    Endp
  74. TIME_GEC    Ends
  75.     End
  76.